/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package IT.Servlet;

import IT.DataAccess.DatPlantillaActividad;
import IT.DataAccess.IDatPlantillaActividad;
import IT.Entities.PlantillaActividad;
import IT.Helper.Helper;
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class PlantillaActividadServlet extends HttpServlet {
   
  
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=ISO-8859-1");
        String cAccion,cMensaje;
        cAccion="";cMensaje="";
        
        Helper oHelper=new Helper();
        IDatPlantillaActividad oDatActividad=new DatPlantillaActividad();
        PlantillaActividad oActividad=new PlantillaActividad();
        
        int nEtapa, nEstado,nCodigo,nOrden,nTipo,nTipoRspta,nPredecesor;
        nEtapa=0;nEstado=0;nCodigo=0;nOrden=0;nTipo=0;nTipoRspta=0;
        nPredecesor=0;
        boolean bPrincipal,bEjecutor;
        bPrincipal=false;bEjecutor=false;
        
        if(request.getParameter("btnAccion")!=null){
           
           cAccion=request.getParameter("btnAccion").trim();
           
           //Insertar
           if(cAccion.trim().equals("Insertar")){
               
             //validar
             if(request.getParameter("hdnEtapa").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nEtapa=Integer.parseInt(request.getParameter("hdnEtapa").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Actividad formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("cboNTipo").trim().length()==0){
                    cMensaje+="<li>Tipo es obligatorio</li>";
             }else{                    
                    try{
                        nTipo=Integer.parseInt(request.getParameter("cboNTipo").trim());
                        if(nTipo==0){
                            cMensaje+="<li>Debe seleccionar Tipo</li>";
                        }
                        
                    }catch(Exception ex){
                        cMensaje+="<li>Tipo formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("txtNActividad").trim().length()==0){
                   cMensaje+="<li>Nombre de Actividad es obligatorio</li>";
             }else{
                    if(request.getParameter("txtNActividad").trim().length()<2){
                        cMensaje+="<li>Nombre de Actividad debe ser mayor o igual a 2 caracteres</li>";
                    }
             }
             
             if(request.getParameter("cboNTipoRspta")!=null){
                 
                 if(request.getParameter("cboNTipoRspta").trim().length()==0){
                        cMensaje+="<li>Desarrollo es obligatorio</li>";
                 }else{                    
                        try{
                            nTipoRspta=Integer.parseInt(request.getParameter("cboNTipoRspta").trim());
                            if(nTipoRspta==0){
                                cMensaje+="<li>Debe seleccionar Desarrollo</li>";
                            }

                        }catch(Exception ex){
                            cMensaje+="<li>Desarrollo formato incorrecto</li>";
                        }
                 }
             }else{
                nTipoRspta=0;
             }
             
             if(request.getParameter("cboNEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboNEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }          
             
              if(request.getParameter("cboNPredecesor").trim().length()==0){
                    cMensaje+="<li>Predecesor es obligatorio</li>";
             }else{                    
                    try{
                        nPredecesor=Integer.parseInt(request.getParameter("cboNPredecesor").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Predecesor formato incorrecto</li>";
                    }
             } 
             
             if(request.getParameter("chkNPrincipal")!=null){
                bPrincipal=true;
             }
             
             if(request.getParameter("chkNEjecutor")!=null){
                bEjecutor=true;
             }
             
             if(cMensaje.trim().length()==0){
                 nOrden=oDatActividad.Orden(nEtapa)+1;
                 
                 oActividad.setOrd_plaact_in(nOrden);
                 oActividad.setNom_plaact_vc(oHelper.ValidaEncode(request.getParameter("txtNActividad").trim()));
                 oActividad.setDes_plaact_vc(oHelper.ValidaEncode(request.getParameter("txtNDescripcion").trim()));

                 oActividad.setApro_plaact_bo(bPrincipal);
                 oActividad.setEst_plaact_in(nEstado);
                 oActividad.setCod_plaeta_in(nEtapa);

                 oActividad.setTip_plaact_in(nTipo);
                 oActividad.setTip_rspta_plaact_in(nTipoRspta);
                 oActividad.setCod_ant_plaact_in(nPredecesor);
                 
                 oActividad.setEje_plaact_bo(bEjecutor);

                 oDatActividad.Insertar(oActividad);
             }else{             
                request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");  
             }
             response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+nEtapa);
           }
           
            //Insertar
           if(cAccion.trim().equals("Guardar")){
               
             //validar
             if(request.getParameter("hdnCodigo").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nCodigo=Integer.parseInt(request.getParameter("hdnCodigo").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
               
             if(request.getParameter("hdnEtapa").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nEtapa=Integer.parseInt(request.getParameter("hdnEtapa").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Actividad formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("cboTipo").trim().length()==0){
                    cMensaje+="<li>Tipo es obligatorio</li>";
             }else{                    
                    try{
                        nTipo=Integer.parseInt(request.getParameter("cboTipo").trim());
                        if(nTipo==0){
                            cMensaje+="<li>Debe seleccionar Tipo</li>";
                        }
                        
                    }catch(Exception ex){
                        cMensaje+="<li>Tipo formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("txtActividad").trim().length()==0){
                   cMensaje+="<li>Nombre de Actividad es obligatorio</li>";
             }else{
                    if(request.getParameter("txtActividad").trim().length()<2){
                        cMensaje+="<li>Nombre de Actividad debe ser mayor o igual a 2 caracteres</li>";
                    }
             }
             
             if(request.getParameter("cboTipoRspta")!=null){
                 
                 if(request.getParameter("cboTipoRspta").trim().length()==0){
                        cMensaje+="<li>Desarrollo es obligatorio</li>";
                 }else{                    
                        try{
                            nTipoRspta=Integer.parseInt(request.getParameter("cboTipoRspta").trim());
                            if(nTipoRspta==0){
                                cMensaje+="<li>Debe seleccionar Desarrollo</li>";
                            }

                        }catch(Exception ex){
                            cMensaje+="<li>Desarrollo formato incorrecto</li>";
                        }
                 }
             }else{
                nTipoRspta=0;
             }
             
             if(request.getParameter("cboEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }        
             
            if(request.getParameter("cboPredecesor").trim().length()==0){
                    cMensaje+="<li>Predecesor es obligatorio</li>";
             }else{                    
                    try{
                        nPredecesor=Integer.parseInt(request.getParameter("cboPredecesor").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Predecesor formato incorrecto</li>";
                    }
             } 
             
             if(request.getParameter("chkPrincipal")!=null){
                bPrincipal=true;
             }
             
             if(request.getParameter("chkEjecutor")!=null){
                bEjecutor=true;
             }
             
             if(nCodigo==nPredecesor){
                 cMensaje+="<li>El predecesor no puede ser la mima actividad</li>";
             }
             
             if(cMensaje.trim().length()==0){
                 nOrden=oDatActividad.Orden(nEtapa)+1;
                 
                 //oActividad.setOrd_plaact_in(nOrden);
                 oActividad.setCod_plaact_in(nCodigo);
                 oActividad.setNom_plaact_vc(oHelper.ValidaEncode(request.getParameter("txtActividad").trim()));
                 oActividad.setDes_plaact_vc(oHelper.ValidaEncode(request.getParameter("txtDescripcion").trim()));

                 oActividad.setApro_plaact_bo(bPrincipal);
                 oActividad.setEst_plaact_in(nEstado);
                 oActividad.setCod_plaeta_in(nEtapa);

                 oActividad.setTip_plaact_in(nTipo);
                 oActividad.setTip_rspta_plaact_in(nTipoRspta);
                 oActividad.setCod_ant_plaact_in(nPredecesor);
                 
                 oActividad.setEje_plaact_bo(bEjecutor);
                 
                 oDatActividad.Editar(oActividad);
                 
                response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+String.valueOf(nEtapa).trim());  
                
             }else{                 
               request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");                  
               response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+String.valueOf(nEtapa).trim()+"&nEditar="+String.valueOf(nCodigo).trim());  
             }
             //response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+nEtapa);
           }
            //Cancelar
            if(cAccion.trim().equals("Cancelar")){
             if(request.getParameter("hdnEtapa").trim().length()==0){
                cMensaje+="<li>Etapa es obligatorio</li>";
             }else{
                try{                        
                    nEstado=Integer.parseInt(request.getParameter("hdnEtapa").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Etapa formato incorrecto</li>";
                }             
             }
             response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+String.valueOf(nEstado).trim()); 
        
           }
        }
        
          if(request.getParameter("btnOrden")!=null){
            cAccion=request.getParameter("btnOrden").trim();
            String[] cOrden,cActividad;
            nOrden=0;
            //boolean bValida=false;
            
            if(cAccion.trim().equals("Guardar")){
                if(request.getParameter("hdnEtapa").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
                }else{
                    try{                        
                        nEtapa=Integer.parseInt(request.getParameter("hdnEtapa").trim());                              
                    }catch(Exception ex){
                        cMensaje+="<li>Actividad formato incorrecto</li>";
                    }
                }
                
                cOrden = request.getParameterValues("txtOrden");
                cActividad=request.getParameterValues("hdnActividad");
                
                if (cOrden != null){
                 for (int i = 0; i < cOrden.length; i++){
                   try{
                      nOrden=Integer.parseInt(cOrden[i].trim());
                   }catch(Exception ex){
                      cMensaje="<li>Orden formato incorrecto</li>";break;
                   }
                 }
                }
                
                if(cMensaje.trim().length()==0){
                    oDatActividad=new DatPlantillaActividad();
                    nOrden=0;
                    nCodigo=0;
                    cMensaje="";
                    
                    for (int i = 0; i < cOrden.length; i++){                      
                        nOrden=Integer.parseInt(cOrden[i].trim());
                        nCodigo=Integer.parseInt(cActividad[i].trim());
                        oDatActividad.EditarOrden(new PlantillaActividad(nCodigo,nOrden));
                        //cMensaje+=String.valueOf(nCodigo)+","+String.valueOf(nOrden)+"<br/>";
                    }     
                    //request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>"); 
                    response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+String.valueOf(nEtapa).trim());
                    
                }else{
                    request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>"); 
                    response.sendRedirect("WebPlantillaActividad.jsp?nEtapa="+String.valueOf(nEtapa).trim()+"&nOrden=1");
                
                }
                
                
                
            }            
          }
        //response.setContentType("text/html;charset=UTF-8");
        //PrintWriter out = response.getWriter();
        //try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet PlantillaActividadServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet PlantillaActividadServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
        //} finally { 
        //    out.close();
        //}
        
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
